package com.mes.biz.service;

import com.github.pagehelper.PageInfo;
import com.mes.biz.domain.BizProductCategory;
import com.mes.biz.domain.vo.ImportProduct;
import com.mes.biz.domain.vo.ProductVo;
import com.mes.common.core.domain.AjaxResult;
import com.mes.common.core.domain.TreeNode;
import com.mes.common.core.domain.entity.SysUser;
import com.mes.common.core.service.BaseService;
import com.mes.biz.domain.BizProduct;
import com.mes.system.domain.SysConfig;

import java.util.List;

/**
 * 产品Service接口
 * @author hwg
 * @email hwg
 * @date 2023-04-02
 */
public interface BizProductService extends BaseService<BizProduct> {

    /**
     * 批量删除产品
     * @param ids 需要删除的产品ID集合
     * @return 结果
     */
    public int deleteBizProductByIds(String[] ids);

    /**
     * 创建产品
     * @param bizProduct
     * @return
     */
    boolean createProduct(BizProduct bizProduct);


    /**
     * 构建前端所需要树结构
     * @param level 展开层级
     * @param id 父节点ID
     * @return
     */
    public List<TreeNode> buildTree(int level, String id);

    /**
     * 构建前端所需要树结构（排除当前节点及子节点）
     * @param level 展开层级
     * @param id 父节点ID
     * @param excludeBizProduct 排除节点信息
     * @return
     */
    public List<TreeNode> buildTreeDataExcludeChild(int level, String id, BizProduct excludeBizProduct);

    /**
     * 根据产品编号查询产品信息
     * @param productCode
     * @return
     */
    BizProduct getBizProductByProductCode(String productCode);

    public int batchUpdate(ProductVo productVo);

    public AjaxResult importData(List<ImportProduct> bizProductList, String wahoueseId);

    /**
     * 校验商品参数是否唯一
     * @param bizProduct 参数信息
     * @return 结果
     */
    public void checkDataUnique(BizProduct bizProduct);
}
